.container {
    margin-left: auto;
    margin-right: auto;

    &.extended {
        @media (min-width: $on-phone) {
            max-width: 800px;

            .left-sidebar {
                width: 25%;
            }
        }

        @media (min-width: $on-tablet) {
            max-width: 972px;

            .right-sidebar {
                width: 25%;
            }
        }

        @media (min-width: $on-desktop) {
            max-width: 1200px;

            .left-sidebar {
                width: 20%;
            }

            .right-sidebar {
                width: 25%;
            }
        }

        @media (min-width: $on-desktop-large) {
            max-width: 1536px;

            .left-sidebar {
                width: 15%;
            }
        }
    }

    &.compact {
        @media (min-width: $on-phone) {
            max-width: 800px;

            .left-sidebar {
                width: 25%;
            }
        }

        @media (min-width: $on-tablet) {
            max-width: 972px;
        }

        @media (min-width: $on-desktop) {
            max-width: 1050px;

            .left-sidebar {
                width: 20%;
            }
        }

        @media (min-width: $on-desktop-large) {
            max-width: 1300px;
        }
    }
}

.flex {
    display: flex;
    flex-direction: row;

    &.column {
        flex-direction: column;
    }

    &.on-phone--column {
        @media (max-width: $on-phone) {
            flex-direction: column;
        }
    }

    &.align-items--flex-start {
        align-items: flex-start;
    }

    .grow {
        flex-grow: 1;
    }

    .do-not-shrink {
        flex-shrink: 0;
    }

    .do-not-overflow {
        min-width: 0;
        flex-shrink: 1;
        max-width: 100%;
    }

    .full-width {
        width: 100%;
    }
}

main.main {
    min-width: 0;
    padding: 0 15px;
    max-width: 100%;
    flex-grow: 1;
    padding-top: var(--main-top-padding);
}

.main-container {
    min-height: 100vh;
}